<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxBVHStructure Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classPxBVHStructure.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classPxBVHStructure-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PxBVHStructure Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__geomutils.html">Geomutils</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Class representing the bounding volume hierarchy structure.  
 <a href="classPxBVHStructure.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="PxBVHStructure_8h_source.html">PxBVHStructure.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PxBVHStructure:</div>
<div class="dyncontent">
<div class="center"><img src="classPxBVHStructure__inherit__graph.png" border="0" usemap="#PxBVHStructure_inherit__map" alt="Inheritance graph"/></div>
<map name="PxBVHStructure_inherit__map" id="PxBVHStructure_inherit__map">
<area shape="rect" id="node2" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. " alt="" coords="31,5,99,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PxBVHStructure:</div>
<div class="dyncontent">
<div class="center"><img src="classPxBVHStructure__coll__graph.png" border="0" usemap="#PxBVHStructure_coll__map" alt="Collaboration graph"/></div>
<map name="PxBVHStructure_coll__map" id="PxBVHStructure_coll__map">
<area shape="rect" id="node2" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. " alt="" coords="48,109,116,136"/>
<area shape="rect" id="node3" href="classPxFlags.html" title="PxFlags\&lt; PxBaseFlag\l::Enum, PxU16 \&gt;" alt="" coords="5,5,159,47"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a49c1889b5579289eedac4b2a1cc3f816"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#a49c1889b5579289eedac4b2a1cc3f816">raycast</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;origin, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;unitDir, PxReal maxDist, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> maxHits, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a> rayHits) const =0</td></tr>
<tr class="memdesc:a49c1889b5579289eedac4b2a1cc3f816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raycast test against a BVH structure.  <a href="#a49c1889b5579289eedac4b2a1cc3f816">More...</a><br /></td></tr>
<tr class="separator:a49c1889b5579289eedac4b2a1cc3f816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af287a0b146a415ce9a4a1271ad840a65"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#af287a0b146a415ce9a4a1271ad840a65">sweep</a> (const <a class="el" href="classPxBounds3.html">PxBounds3</a> &amp;aabb, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;unitDir, PxReal maxDist, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> maxHits, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a> sweepHits) const =0</td></tr>
<tr class="memdesc:af287a0b146a415ce9a4a1271ad840a65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sweep test against a BVH structure.  <a href="#af287a0b146a415ce9a4a1271ad840a65">More...</a><br /></td></tr>
<tr class="separator:af287a0b146a415ce9a4a1271ad840a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca677f7f865154c99cdf1ebb73c1a14"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#a4ca677f7f865154c99cdf1ebb73c1a14">overlap</a> (const <a class="el" href="classPxBounds3.html">PxBounds3</a> &amp;aabb, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> maxHits, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a> overlapHits) const =0</td></tr>
<tr class="memdesc:a4ca677f7f865154c99cdf1ebb73c1a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">AABB overlap test against a BVH structure.  <a href="#a4ca677f7f865154c99cdf1ebb73c1a14">More...</a><br /></td></tr>
<tr class="separator:a4ca677f7f865154c99cdf1ebb73c1a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe3939c3cc24733dc5e2802055e4aabd"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classPxBounds3.html">PxBounds3</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#abe3939c3cc24733dc5e2802055e4aabd">getBounds</a> () const =0</td></tr>
<tr class="memdesc:abe3939c3cc24733dc5e2802055e4aabd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the bounds in the BVH.  <a href="#abe3939c3cc24733dc5e2802055e4aabd">More...</a><br /></td></tr>
<tr class="separator:abe3939c3cc24733dc5e2802055e4aabd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfbea2927e38880bfbc74d099344b1b8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#acfbea2927e38880bfbc74d099344b1b8">getNbBounds</a> () const =0</td></tr>
<tr class="memdesc:acfbea2927e38880bfbc74d099344b1b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bounds in the BVH.  <a href="#acfbea2927e38880bfbc74d099344b1b8">More...</a><br /></td></tr>
<tr class="separator:acfbea2927e38880bfbc74d099344b1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0af1dce7981ef47d33e08f0bef28527"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#ae0af1dce7981ef47d33e08f0bef28527">getConcreteTypeName</a> () const</td></tr>
<tr class="memdesc:ae0af1dce7981ef47d33e08f0bef28527"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns string name of dynamic type.  <a href="#ae0af1dce7981ef47d33e08f0bef28527">More...</a><br /></td></tr>
<tr class="separator:ae0af1dce7981ef47d33e08f0bef28527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classPxBase"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classPxBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classPxBase.html">PxBase</a></td></tr>
<tr class="memitem:afe6aedda1df0d6d29b1a28213a5ee25a inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#afe6aedda1df0d6d29b1a28213a5ee25a">release</a> ()=0</td></tr>
<tr class="memdesc:afe6aedda1df0d6d29b1a28213a5ee25a inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> instance, please check documentation of release in derived class.  <a href="classPxBase.html#afe6aedda1df0d6d29b1a28213a5ee25a">More...</a><br /></td></tr>
<tr class="separator:afe6aedda1df0d6d29b1a28213a5ee25a inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bc720adef86ea68bfb5845f0e104d23 inherit pub_methods_classPxBase"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a4bc720adef86ea68bfb5845f0e104d23 inherit pub_methods_classPxBase"><td class="memTemplItemLeft" align="right" valign="top">T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxBase.html#a4bc720adef86ea68bfb5845f0e104d23">is</a> ()</td></tr>
<tr class="separator:a4bc720adef86ea68bfb5845f0e104d23 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85aa50ac0e5670a2be64411fea62b5e3 inherit pub_methods_classPxBase"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a85aa50ac0e5670a2be64411fea62b5e3 inherit pub_methods_classPxBase"><td class="memTemplItemLeft" align="right" valign="top">const T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxBase.html#a85aa50ac0e5670a2be64411fea62b5e3">is</a> () const</td></tr>
<tr class="separator:a85aa50ac0e5670a2be64411fea62b5e3 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e0691a08e49631dc60014d49c7585f inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#ab4e0691a08e49631dc60014d49c7585f">getConcreteType</a> () const</td></tr>
<tr class="memdesc:ab4e0691a08e49631dc60014d49c7585f inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns concrete type of object.  <a href="classPxBase.html#ab4e0691a08e49631dc60014d49c7585f">More...</a><br /></td></tr>
<tr class="separator:ab4e0691a08e49631dc60014d49c7585f inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dd20bb574075df904e1878f2e771ef9 inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a1dd20bb574075df904e1878f2e771ef9">setBaseFlag</a> (<a class="el" href="structPxBaseFlag.html#ac258de0c7adaa37f81b6ab1b0c86a6ee">PxBaseFlag::Enum</a> flag, bool value)</td></tr>
<tr class="memdesc:a1dd20bb574075df904e1878f2e771ef9 inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set <a class="el" href="structPxBaseFlag.html" title="Flags for PxBase. ">PxBaseFlag</a>.  <a href="classPxBase.html#a1dd20bb574075df904e1878f2e771ef9">More...</a><br /></td></tr>
<tr class="separator:a1dd20bb574075df904e1878f2e771ef9 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb391b692c561df0a54c413785e4ebd0 inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#afb391b692c561df0a54c413785e4ebd0">setBaseFlags</a> (<a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> inFlags)</td></tr>
<tr class="memdesc:afb391b692c561df0a54c413785e4ebd0 inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set PxBaseFlags.  <a href="classPxBase.html#afb391b692c561df0a54c413785e4ebd0">More...</a><br /></td></tr>
<tr class="separator:afb391b692c561df0a54c413785e4ebd0 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9b10efae7733ff9c8b8d3b7d90a9a5f inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#ad9b10efae7733ff9c8b8d3b7d90a9a5f">getBaseFlags</a> () const</td></tr>
<tr class="memdesc:ad9b10efae7733ff9c8b8d3b7d90a9a5f inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns PxBaseFlags.  <a href="classPxBase.html#ad9b10efae7733ff9c8b8d3b7d90a9a5f">More...</a><br /></td></tr>
<tr class="separator:ad9b10efae7733ff9c8b8d3b7d90a9a5f inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38952fcb80e99f1f5dbf774a75ac2c3d inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a38952fcb80e99f1f5dbf774a75ac2c3d">isReleasable</a> () const</td></tr>
<tr class="memdesc:a38952fcb80e99f1f5dbf774a75ac2c3d inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the object is subordinate.  <a href="classPxBase.html#a38952fcb80e99f1f5dbf774a75ac2c3d">More...</a><br /></td></tr>
<tr class="separator:a38952fcb80e99f1f5dbf774a75ac2c3d inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab29f493e55b836c3267e5ec3567af964"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#ab29f493e55b836c3267e5ec3567af964">PxBVHStructure</a> (<a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a> concreteType, <a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="separator:ab29f493e55b836c3267e5ec3567af964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10ecc2e6f44784fa8b5e6545f113f0b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#a10ecc2e6f44784fa8b5e6545f113f0b7">PxBVHStructure</a> (<a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="separator:a10ecc2e6f44784fa8b5e6545f113f0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4e71f77855508b85f33fd1527a10b2d"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#af4e71f77855508b85f33fd1527a10b2d">~PxBVHStructure</a> ()</td></tr>
<tr class="separator:af4e71f77855508b85f33fd1527a10b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf5b0c1cb9adb339a37e8da3c6402b24"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBVHStructure.html#acf5b0c1cb9adb339a37e8da3c6402b24">isKindOf</a> (const char *name) const</td></tr>
<tr class="memdesc:acf5b0c1cb9adb339a37e8da3c6402b24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a given type name matches with the type of this instance.  <a href="#acf5b0c1cb9adb339a37e8da3c6402b24">More...</a><br /></td></tr>
<tr class="separator:acf5b0c1cb9adb339a37e8da3c6402b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classPxBase"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classPxBase')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classPxBase.html">PxBase</a></td></tr>
<tr class="memitem:a263f1ef821c74058ce9335e06cb842a4 inherit pro_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a263f1ef821c74058ce9335e06cb842a4">PxBase</a> (<a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a> concreteType, <a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="memdesc:a263f1ef821c74058ce9335e06cb842a4 inherit pro_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor setting concrete type and base flags.  <a href="classPxBase.html#a263f1ef821c74058ce9335e06cb842a4">More...</a><br /></td></tr>
<tr class="separator:a263f1ef821c74058ce9335e06cb842a4 inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58b979202e7382701f74977fe3dd5c6f inherit pro_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a58b979202e7382701f74977fe3dd5c6f">PxBase</a> (<a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="memdesc:a58b979202e7382701f74977fe3dd5c6f inherit pro_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserialization constructor setting base flags.  <a href="classPxBase.html#a58b979202e7382701f74977fe3dd5c6f">More...</a><br /></td></tr>
<tr class="separator:a58b979202e7382701f74977fe3dd5c6f inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfbf62dc32775b068db1c74c7fd3d982 inherit pro_methods_classPxBase"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#adfbf62dc32775b068db1c74c7fd3d982">~PxBase</a> ()</td></tr>
<tr class="memdesc:adfbf62dc32775b068db1c74c7fd3d982 inherit pro_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="classPxBase.html#adfbf62dc32775b068db1c74c7fd3d982">More...</a><br /></td></tr>
<tr class="separator:adfbf62dc32775b068db1c74c7fd3d982 inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3782ca64c8f12c41443f604e300fc207 inherit pro_methods_classPxBase"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3782ca64c8f12c41443f604e300fc207 inherit pro_methods_classPxBase"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxBase.html#a3782ca64c8f12c41443f604e300fc207">typeMatch</a> () const</td></tr>
<tr class="separator:a3782ca64c8f12c41443f604e300fc207 inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classPxBase"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classPxBase')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classPxBase.html">PxBase</a></td></tr>
<tr class="memitem:a1abe9d19726e1f8f8e56abeb2269b5d4 inherit pro_attribs_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a1abe9d19726e1f8f8e56abeb2269b5d4">mConcreteType</a></td></tr>
<tr class="separator:a1abe9d19726e1f8f8e56abeb2269b5d4 inherit pro_attribs_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff7105f65905ecb9f6f7993ba28b712d inherit pro_attribs_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#aff7105f65905ecb9f6f7993ba28b712d">mBaseFlags</a></td></tr>
<tr class="separator:aff7105f65905ecb9f6f7993ba28b712d inherit pro_attribs_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class representing the bounding volume hierarchy structure. </p>
<p><a class="el" href="classPxBVHStructure.html" title="Class representing the bounding volume hierarchy structure. ">PxBVHStructure</a> can be provided to <a class="el" href="classPxScene.html#a033c70c3094db21a2c51246e1a65a0e5" title="Adds an actor to this scene. ">PxScene::addActor</a>. In this case the scene query pruning structure inside PhysX SDK will store/update one bound per actor. The scene queries against such an actor will query actor bounds and then make a local space query against the provided BVH structure, which is in actor's local space.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxScene.html#a033c70c3094db21a2c51246e1a65a0e5" title="Adds an actor to this scene. ">PxScene::addActor</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab29f493e55b836c3267e5ec3567af964"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab29f493e55b836c3267e5ec3567af964">&#9670;&nbsp;</a></span>PxBVHStructure() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> PxBVHStructure::PxBVHStructure </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a>&#160;</td>
          <td class="paramname"><em>concreteType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td>
          <td class="paramname"><em>baseFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a10ecc2e6f44784fa8b5e6545f113f0b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10ecc2e6f44784fa8b5e6545f113f0b7">&#9670;&nbsp;</a></span>PxBVHStructure() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> PxBVHStructure::PxBVHStructure </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td>
          <td class="paramname"><em>baseFlags</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af4e71f77855508b85f33fd1527a10b2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4e71f77855508b85f33fd1527a10b2d">&#9670;&nbsp;</a></span>~PxBVHStructure()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PxBVHStructure::~PxBVHStructure </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abe3939c3cc24733dc5e2802055e4aabd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe3939c3cc24733dc5e2802055e4aabd">&#9670;&nbsp;</a></span>getBounds()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classPxBounds3.html">PxBounds3</a>* PxBVHStructure::getBounds </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Retrieve the bounds in the BVH. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box. ">PxBounds3</a> </dd></dl>

</div>
</div>
<a id="ae0af1dce7981ef47d33e08f0bef28527"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0af1dce7981ef47d33e08f0bef28527">&#9670;&nbsp;</a></span>getConcreteTypeName()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* PxBVHStructure::getConcreteTypeName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns string name of dynamic type. </p>
<dl class="section return"><dt>Returns</dt><dd>Class name of most derived type of this object. </dd></dl>

<p>Implements <a class="el" href="classPxBase.html#a67fe206d8897ddce896c371ac8d789a9">PxBase</a>.</p>

</div>
</div>
<a id="acfbea2927e38880bfbc74d099344b1b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfbea2927e38880bfbc74d099344b1b8">&#9670;&nbsp;</a></span>getNbBounds()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxBVHStructure::getNbBounds </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the number of bounds in the BVH. </p>
<p>You can use <a class="el" href="classPxBVHStructure.html#abe3939c3cc24733dc5e2802055e4aabd" title="Retrieve the bounds in the BVH. ">getBounds()</a> to retrieve the bounds.</p>
<dl class="section return"><dt>Returns</dt><dd>Number of bounds in the BVH. </dd></dl>

</div>
</div>
<a id="acf5b0c1cb9adb339a37e8da3c6402b24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf5b0c1cb9adb339a37e8da3c6402b24">&#9670;&nbsp;</a></span>isKindOf()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool PxBVHStructure::isKindOf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>superClass</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether a given type name matches with the type of this instance. </p>

<p>Reimplemented from <a class="el" href="classPxBase.html#addfc067afca2f67bda6c497b14424962">PxBase</a>.</p>

<p class="reference">References <a class="el" href="classPxBase.html#addfc067afca2f67bda6c497b14424962">PxBase::isKindOf()</a>.</p>

</div>
</div>
<a id="a4ca677f7f865154c99cdf1ebb73c1a14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ca677f7f865154c99cdf1ebb73c1a14">&#9670;&nbsp;</a></span>overlap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxBVHStructure::overlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxBounds3.html">PxBounds3</a> &amp;&#160;</td>
          <td class="paramname"><em>aabb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
          <td class="paramname"><em>maxHits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a>&#160;</td>
          <td class="paramname"><em>overlapHits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>AABB overlap test against a BVH structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">aabb</td><td>The axis aligned bounding box </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxHits</td><td>Max number of returned hits = size of 'overlapHits' buffer </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">overlapHits</td><td>Overlap hits information, bounds indices </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of hits </dd></dl>

</div>
</div>
<a id="a49c1889b5579289eedac4b2a1cc3f816"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49c1889b5579289eedac4b2a1cc3f816">&#9670;&nbsp;</a></span>raycast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxBVHStructure::raycast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>unitDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PxReal&#160;</td>
          <td class="paramname"><em>maxDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
          <td class="paramname"><em>maxHits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a>&#160;</td>
          <td class="paramname"><em>rayHits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Raycast test against a BVH structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td>The origin of the ray. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">unitDir</td><td>Normalized direction of the ray. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxDist</td><td>Maximum ray length, has to be in the [0, inf) range </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxHits</td><td>Max number of returned hits = size of 'rayHits' buffer </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rayHits</td><td>Raycast hits information, bounds indices </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of hits </dd></dl>

</div>
</div>
<a id="af287a0b146a415ce9a4a1271ad840a65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af287a0b146a415ce9a4a1271ad840a65">&#9670;&nbsp;</a></span>sweep()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxBVHStructure::sweep </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxBounds3.html">PxBounds3</a> &amp;&#160;</td>
          <td class="paramname"><em>aabb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>unitDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PxReal&#160;</td>
          <td class="paramname"><em>maxDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
          <td class="paramname"><em>maxHits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a>&#160;</td>
          <td class="paramname"><em>sweepHits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sweep test against a BVH structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">aabb</td><td>The axis aligned bounding box to sweep </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">unitDir</td><td>Normalized direction of the sweep. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxDist</td><td>Maximum sweep length, has to be in the [0, inf) range </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxHits</td><td>Max number of returned hits = size of 'sweepHits' buffer </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">sweepHits</td><td>Sweep hits information, bounds indices </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of hits </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxBVHStructure_8h_source.html">PxBVHStructure.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classPxBVHStructure.html">PxBVHStructure</a></li>
    <li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
  </ul>
</div>
</body>
</html>
